
  
  <!DOCTYPE html>
  <html lang="en-us" class="no-js" data-scope="public">
  <head>
    
    
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    
    <title dir="ltr">Redesigning the Country Selector - Labs - Baymard Institute</title>
    
    
    
    
    <meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1, width=device-width" data-active-pager-module-key="meta-viewport">
    
    <!-- Deploy ID: 3719 -->
    
    <script type="text/javascript">
      TypekitConfig = {
        kitId: 'uyj7lqu',
        scriptTimeout: 2000,
        active: function() {
          if ( !!jQuery ) {
            jQuery( window ).trigger( 'baymard:fonts-loaded' );
          };
        },
        inactive: function() {
          if ( !!jQuery ) {
            jQuery( window ).trigger( 'baymard:fonts-loaded' );
          };
        }
      };
      (function() {
        var h = document.getElementsByTagName('html')[0];
        h.className += ' wf-loading';
        var t = setTimeout(function() {
          h.className = h.className.replace(/(\s|^)wf-loading(\s|$)/g, '');
          h.className += ' wf-inactive';
        }, TypekitConfig.scriptTimeout);
        var tk = document.createElement('script');
        tk.src = '//use.typekit.com/' + TypekitConfig.kitId + '.js';
        tk.type = 'text/javascript';
        tk.async = 'true';
        tk.onload = tk.onreadystatechange = function() {
          var rs = this.readyState;
          if (rs && rs != 'complete' && rs != 'loaded') return;
          clearTimeout(t);
          try { Typekit.load(TypekitConfig); } catch (e) {}
        };
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(tk, s);
      })();
    
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-220249-6']);
      _gaq.push(['_setDomainName', '.baymard.com']);
      _gaq.push(['_setAllowLinker', true]);
      _gaq.push(['_trackPageview']);
    
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    
    </script>
  
    <link href="/assets/public-caec31e27fa219df2802f61d3f2e6ae7.css" media="screen" rel="stylesheet" type="text/css" />
    <script src="/assets/public-7f77c5ec3be7218f1facb2deea3f9416.js" type="text/javascript"></script>
    <link href="http://feeds.baymard.com/baymard" rel="alternate" title="ATOM" type="application/atom+xml" />
    <meta content="authenticity_token" name="csrf-param" />
<meta content="knoP5CyKY03v746WYjVNPfdSrJY12ysrawXxwk2ZjUs=" name="csrf-token" />
  
  </head>
  <body>
  
    <div class="header" data-active-pager-module-key="header" data-active-pager-module-value="v12-public">
      <div class="inner">
  
  <h3 class="navigation spring-box-link">Navigation</h3>
  <nav class="main clearfix">
    <a href="/" class="home" data-system-key="home"><span class="logo"></span><span class="company-name">Baymard Institute</span> <span class="page-name">Home</span></a>
<a href="/blog" class="" data-system-key="articles">Articles</a>
    <div class="research">
      <div class="spring-box">
        <a href="#" class="spring-box-link">Usability Reports</a>
        <div class="spring-box-content">
          <a href="/checkout-usability" class="" data-system-key="report_ecommerce_checkout">Checkout Report</a>
<a href="/homepage-and-category-usability" class="" data-system-key="report_ecommerce_homepage_and_category">Homepage &amp; Category Report</a>
<a href="/mcommerce-usability" class="" data-system-key="report_mcommerce">M-Commerce Report</a>
        </div>
      </div>
    </div>
    <div class="benchmarks">
      <div class="spring-box">
        <a href="#" class="spring-box-link">Benchmarks</a>
        <div class="spring-box-content">
          <a href="/checkout-usability/benchmark" class="" data-system-key="benchmark_ecommerce_checkout">Checkout Usability Benchmark</a>
<a href="/homepage-and-category-usability/benchmark" class="" data-system-key="benchmark_ecommerce_homepage_and_category">Homepage &amp; Category Benchmark</a>
        </div>
      </div>
    </div>
    <a href="/about" class="" data-system-key="about">About</a>
    <div class="account">
        <a href="/sign-in" class="sign-in" data-system-key="pro_sign_in">Sign in</a>
    </div>
  </nav>
  
</div>

<script>
  $( 'body > .header' ).springBox( 'destroy' ).springBox().find( '.account .spring-box, .research .spring-box, .benchmarks .spring-box' ).springBox();
</script>
    </div>
  
    <div class="page active-pager-wrap">
    
            
  <div class="generic one-column labs country-selector">
  
  <div class="formatted-text">
    <hgroup>
      <h1>Redesigning the Country Selector</h1>
      <h2>Turning standard drop-downs into advanced auto-complete fields</h2>
    </hgroup>
    <p>During our recent <a href="/checkout-usability">checkout study</a> we found several <a href="/blog/drop-down-usability">usability issues</a> when using a drop-down for your country selector: a lack of overview, unclear sorting, scrolling issues, inconsistent UIs, a lack of context on mobile devices, and finally, they break the user's tab-flow.</p>
    <p>So we took it upon ourselves to redesign the country selector.</p>
  </div>
  
  <div class="demo">
    
    <h2 class="title">Demo</h2>
    <label class="label" for="country-selector">Type your country:</label>
    <div class="field-wrapper">
      <select class="field" placeholder="Type your country" name="Country" id="country-selector" autofocus="autofocus" autocorrect="off" autocomplete="off">
        <option value="" selected="selected">Select Country</option>
        <option value="Afghanistan" data-alternative-spellings="AF">Afghanistan</option>
        <option value="Åland Islands" data-alternative-spellings="AX Aaland Aland" data-relevancy-booster="0.5">Åland Islands</option>
        <option value="Albania" data-alternative-spellings="AL">Albania</option>
        <option value="Algeria" data-alternative-spellings="DZ">Algeria</option>
        <option value="American Samoa" data-alternative-spellings="AS" data-relevancy-booster="0.5">American Samoa</option>
        <option value="Andorra" data-alternative-spellings="AD" data-relevancy-booster="0.5">Andorra</option>
        <option value="Angola" data-alternative-spellings="AO">Angola</option>
        <option value="Anguilla" data-alternative-spellings="AI" data-relevancy-booster="0.5">Anguilla</option>
        <option value="Antarctica" data-alternative-spellings="AQ" data-relevancy-booster="0.5">Antarctica</option>
        <option value="Antigua And Barbuda" data-alternative-spellings="AG" data-relevancy-booster="0.5">Antigua And Barbuda</option>
        <option value="Argentina" data-alternative-spellings="AR">Argentina</option>
        <option value="Armenia" data-alternative-spellings="AM">Armenia</option>
        <option value="Aruba" data-alternative-spellings="AW" data-relevancy-booster="0.5">Aruba</option>
        <option value="Australia" data-alternative-spellings="AU" data-relevancy-booster="1.5">Australia</option>
        <option value="Austria" data-alternative-spellings="AT Österreich Osterreich Oesterreich ">Austria</option>
        <option value="Azerbaijan" data-alternative-spellings="AZ">Azerbaijan</option>
        <option value="Bahamas" data-alternative-spellings="BS">Bahamas</option>
        <option value="Bahrain" data-alternative-spellings="BH">Bahrain</option>
        <option value="Bangladesh" data-alternative-spellings="BD" data-relevancy-booster="2">Bangladesh</option>
        <option value="Barbados" data-alternative-spellings="BB">Barbados</option>
        <option value="Belarus" data-alternative-spellings="BY">Belarus</option>
        <option value="Belgium" data-alternative-spellings="BE België Belgie Belgien Belgique" data-relevancy-booster="1.5">Belgium</option>
        <option value="Belize" data-alternative-spellings="BZ">Belize</option>
        <option value="Benin" data-alternative-spellings="BJ">Benin</option>
        <option value="Bermuda" data-alternative-spellings="BM" data-relevancy-booster="0.5">Bermuda</option>
        <option value="Bhutan" data-alternative-spellings="BT">Bhutan</option>
        <option value="Bolivia" data-alternative-spellings="BO">Bolivia</option>
        <option value="Bonaire, Sint Eustatius and Saba" data-alternative-spellings="BQ">Bonaire, Sint Eustatius and Saba</option>
        <option value="Bosnia and Herzegovina" data-alternative-spellings="BA">Bosnia and Herzegovina</option>
        <option value="Botswana" data-alternative-spellings="BW">Botswana</option>
        <option value="Bouvet Island" data-alternative-spellings="BV">Bouvet Island</option>
        <option value="Brazil" data-alternative-spellings="BR Brasil" data-relevancy-booster="2">Brazil</option>
        <option value="British Indian Ocean Territory" data-alternative-spellings="IO">British Indian Ocean Territory</option>
        <option value="Brunei Darussalam" data-alternative-spellings="BN">Brunei Darussalam</option>
        <option value="Bulgaria" data-alternative-spellings="BG">Bulgaria</option>
        <option value="Burkina Faso" data-alternative-spellings="BF">Burkina Faso</option>
        <option value="Burundi" data-alternative-spellings="BI">Burundi</option>
        <option value="Cambodia" data-alternative-spellings="KH">Cambodia</option>
        <option value="Cameroon" data-alternative-spellings="CM">Cameroon</option>
        <option value="Canada" data-alternative-spellings="CA" data-relevancy-booster="2">Canada</option>
        <option value="Cape Verde" data-alternative-spellings="CV">Cape Verde</option>
        <option value="Cayman Islands" data-alternative-spellings="KY" data-relevancy-booster="0.5">Cayman Islands</option>
        <option value="Central African Republic" data-alternative-spellings="CF">Central African Republic</option>
        <option value="Chad" data-alternative-spellings="TD">Chad</option>
        <option value="Chile" data-alternative-spellings="CL">Chile</option>
        <option value="China" data-relevancy-booster="3.5" data-alternative-spellings="CN Zhongguo Zhonghua Peoples Republic">China</option>
        <option value="Christmas Island" data-alternative-spellings="CX" data-relevancy-booster="0.5">Christmas Island</option>
        <option value="Cocos (Keeling) Islands" data-alternative-spellings="CC" data-relevancy-booster="0.5">Cocos (Keeling) Islands</option>
        <option value="Colombia" data-alternative-spellings="CO">Colombia</option>
        <option value="Comoros" data-alternative-spellings="KM">Comoros</option>
        <option value="Congo" data-alternative-spellings="CG">Congo</option>
        <option value="Congo, the Democratic Republic of the" data-alternative-spellings="CD">Congo, the Democratic Republic of the</option>
        <option value="Cook Islands" data-alternative-spellings="CK" data-relevancy-booster="0.5">Cook Islands</option>
        <option value="Costa Rica" data-alternative-spellings="CR">Costa Rica</option>
        <option value="Côte d'Ivoire" data-alternative-spellings="CI Cote dIvoire">Côte d'Ivoire</option>
        <option value="Croatia" data-alternative-spellings="HR Hrvatska">Croatia</option>
        <option value="Cuba" data-alternative-spellings="CU">Cuba</option>
        <option value="Curaçao" data-alternative-spellings="CW Curacao">Curaçao</option>
        <option value="Cyprus" data-alternative-spellings="CY">Cyprus</option>
        <option value="Czech Republic" data-alternative-spellings="CZ Česká Ceska">Czech Republic</option>
        <option value="Denmark" data-alternative-spellings="DK Danmark" data-relevancy-booster="1.5">Denmark</option>
        <option value="Djibouti" data-alternative-spellings="DJ">Djibouti</option>
        <option value="Dominica" data-alternative-spellings="DM" data-relevancy-booster="0.5">Dominica</option>
        <option value="Dominican Republic" data-alternative-spellings="DO">Dominican Republic</option>
        <option value="Ecuador" data-alternative-spellings="EC">Ecuador</option>
        <option value="Egypt" data-alternative-spellings="EG" data-relevancy-booster="1.5">Egypt</option>
        <option value="El Salvador" data-alternative-spellings="SV">El Salvador</option>
        <option value="Equatorial Guinea" data-alternative-spellings="GQ">Equatorial Guinea</option>
        <option value="Eritrea" data-alternative-spellings="ER">Eritrea</option>
        <option value="Estonia" data-alternative-spellings="EE Eesti">Estonia</option>
        <option value="Ethiopia" data-alternative-spellings="ET">Ethiopia</option>
        <option value="Falkland Islands (Malvinas)" data-alternative-spellings="FK" data-relevancy-booster="0.5">Falkland Islands (Malvinas)</option>
        <option value="Faroe Islands" data-alternative-spellings="FO Føroyar Færøerne" data-relevancy-booster="0.5">Faroe Islands</option>
        <option value="Fiji" data-alternative-spellings="FJ">Fiji</option>
        <option value="Finland" data-alternative-spellings="FI Suomi">Finland</option>
        <option value="France" data-alternative-spellings="FR République française" data-relevancy-booster="2.5">France</option>
        <option value="French Guiana" data-alternative-spellings="GF">French Guiana</option>
        <option value="French Polynesia" data-alternative-spellings="PF">French Polynesia</option>
        <option value="French Southern Territories" data-alternative-spellings="TF">French Southern Territories</option>
        <option value="Gabon" data-alternative-spellings="GA">Gabon</option>
        <option value="Gambia" data-alternative-spellings="GM">Gambia</option>
        <option value="Georgia" data-alternative-spellings="GE">Georgia</option>
        <option value="Germany" data-alternative-spellings="DE Bundesrepublik Deutschland" data-relevancy-booster="3">Germany</option>
        <option value="Ghana" data-alternative-spellings="GH">Ghana</option>
        <option value="Gibraltar" data-alternative-spellings="GI" data-relevancy-booster="0.5">Gibraltar</option>
        <option value="Greece" data-alternative-spellings="GR" data-relevancy-booster="1.5">Greece</option>
        <option value="Greenland" data-alternative-spellings="GL grønland" data-relevancy-booster="0.5">Greenland</option>
        <option value="Grenada" data-alternative-spellings="GD">Grenada</option>
        <option value="Guadeloupe" data-alternative-spellings="GP">Guadeloupe</option>
        <option value="Guam" data-alternative-spellings="GU">Guam</option>
        <option value="Guatemala" data-alternative-spellings="GT">Guatemala</option>
        <option value="Guernsey" data-alternative-spellings="GG" data-relevancy-booster="0.5">Guernsey</option>
        <option value="Guinea" data-alternative-spellings="GN">Guinea</option>
        <option value="Guinea-Bissau" data-alternative-spellings="GW">Guinea-Bissau</option>
        <option value="Guyana" data-alternative-spellings="GY">Guyana</option>
        <option value="Haiti" data-alternative-spellings="HT">Haiti</option>
        <option value="Heard Island and McDonald Islands" data-alternative-spellings="HM">Heard Island and McDonald Islands</option>
        <option value="Holy See (Vatican City State)" data-alternative-spellings="VA" data-relevancy-booster="0.5">Holy See (Vatican City State)</option>
        <option value="Honduras" data-alternative-spellings="HN">Honduras</option>
        <option value="Hong Kong" data-alternative-spellings="HK">Hong Kong</option>
        <option value="Hungary" data-alternative-spellings="HU">Hungary</option>
        <option value="Iceland" data-alternative-spellings="IS Island">Iceland</option>
        <option value="India" data-alternative-spellings="IN" data-relevancy-booster="3">India</option>
        <option value="Indonesia" data-alternative-spellings="ID" data-relevancy-booster="2">Indonesia</option>
        <option value="Iran, Islamic Republic of" data-alternative-spellings="IR">Iran, Islamic Republic of</option>
        <option value="Iraq" data-alternative-spellings="IQ">Iraq</option>
        <option value="Ireland" data-alternative-spellings="IE Éire" data-relevancy-booster="1.2">Ireland</option>
        <option value="Isle of Man" data-alternative-spellings="IM" data-relevancy-booster="0.5">Isle of Man</option>
        <option value="Israel" data-alternative-spellings="IL">Israel</option>
        <option value="Italy" data-alternative-spellings="IT Italia" data-relevancy-booster="2">Italy</option>
        <option value="Jamaica" data-alternative-spellings="JM">Jamaica</option>
        <option value="Japan" data-alternative-spellings="JP Nippon Nihon" data-relevancy-booster="2.5">Japan</option>
        <option value="Jersey" data-alternative-spellings="JE" data-relevancy-booster="0.5">Jersey</option>
        <option value="Jordan" data-alternative-spellings="JO">Jordan</option>
        <option value="Kazakhstan" data-alternative-spellings="KZ">Kazakhstan</option>
        <option value="Kenya" data-alternative-spellings="KE">Kenya</option>
        <option value="Kiribati" data-alternative-spellings="KI">Kiribati</option>
        <option value="Korea, Democratic People's Republic of" data-alternative-spellings="KP North Korea">Korea, Democratic People's Republic of</option>
        <option value="Korea, Republic of" data-alternative-spellings="KR South Korea" data-relevancy-booster="1.5">Korea, Republic of</option>
        <option value="Kuwait" data-alternative-spellings="KW">Kuwait</option>
        <option value="Kyrgyzstan" data-alternative-spellings="KG">Kyrgyzstan</option>
        <option value="Lao People's Democratic Republic" data-alternative-spellings="LA">Lao People's Democratic Republic</option>
        <option value="Latvia" data-alternative-spellings="LV">Latvia</option>
        <option value="Lebanon" data-alternative-spellings="LB">Lebanon</option>
        <option value="Lesotho" data-alternative-spellings="LS">Lesotho</option>
        <option value="Liberia" data-alternative-spellings="LR">Liberia</option>
        <option value="Libyan Arab Jamahiriya" data-alternative-spellings="LY">Libyan Arab Jamahiriya</option>
        <option value="Liechtenstein" data-alternative-spellings="LI">Liechtenstein</option>
        <option value="Lithuania" data-alternative-spellings="LT">Lithuania</option>
        <option value="Luxembourg" data-alternative-spellings="LU">Luxembourg</option>
        <option value="Macao" data-alternative-spellings="MO">Macao</option>
        <option value="Macedonia, The Former Yugoslav Republic Of" data-alternative-spellings="MK">Macedonia, The Former Yugoslav Republic Of</option>
        <option value="Madagascar" data-alternative-spellings="MG">Madagascar</option>
        <option value="Malawi" data-alternative-spellings="MW">Malawi</option>
        <option value="Malaysia" data-alternative-spellings="MY">Malaysia</option>
        <option value="Maldives" data-alternative-spellings="MV">Maldives</option>
        <option value="Mali" data-alternative-spellings="ML">Mali</option>
        <option value="Malta" data-alternative-spellings="MT">Malta</option>
        <option value="Marshall Islands" data-alternative-spellings="MH" data-relevancy-booster="0.5">Marshall Islands</option>
        <option value="Martinique" data-alternative-spellings="MQ">Martinique</option>
        <option value="Mauritania" data-alternative-spellings="MR">Mauritania</option>
        <option value="Mauritius" data-alternative-spellings="MU">Mauritius</option>
        <option value="Mayotte" data-alternative-spellings="YT">Mayotte</option>
        <option value="Mexico" data-alternative-spellings="MX Mexicanos" data-relevancy-booster="1.5">Mexico</option>
        <option value="Micronesia, Federated States of" data-alternative-spellings="FM">Micronesia, Federated States of</option>
        <option value="Moldova, Republic of" data-alternative-spellings="MD">Moldova, Republic of</option>
        <option value="Monaco" data-alternative-spellings="MC">Monaco</option>
        <option value="Mongolia" data-alternative-spellings="MN">Mongolia</option>
        <option value="Montenegro" data-alternative-spellings="ME">Montenegro</option>
        <option value="Montserrat" data-alternative-spellings="MS" data-relevancy-booster="0.5">Montserrat</option>
        <option value="Morocco" data-alternative-spellings="MA">Morocco</option>
        <option value="Mozambique" data-alternative-spellings="MZ">Mozambique</option>
        <option value="Myanmar" data-alternative-spellings="MM">Myanmar</option>
        <option value="Namibia" data-alternative-spellings="NA">Namibia</option>
        <option value="Nauru" data-alternative-spellings="NR" data-relevancy-booster="0.5">Nauru</option>
        <option value="Nepal" data-alternative-spellings="NP">Nepal</option>
        <option value="Netherlands" data-alternative-spellings="NL Holland Nederland" data-relevancy-booster="1.5">Netherlands</option>
        <option value="New Caledonia" data-alternative-spellings="NC" data-relevancy-booster="0.5">New Caledonia</option>
        <option value="New Zealand" data-alternative-spellings="NZ">New Zealand</option>
        <option value="Nicaragua" data-alternative-spellings="NI">Nicaragua</option>
        <option value="Niger" data-alternative-spellings="NE">Niger</option>
        <option value="Nigeria" data-alternative-spellings="NG" data-relevancy-booster="1.5">Nigeria</option>
        <option value="Niue" data-alternative-spellings="NU" data-relevancy-booster="0.5">Niue</option>
        <option value="Norfolk Island" data-alternative-spellings="NF" data-relevancy-booster="0.5">Norfolk Island</option>
        <option value="Northern Mariana Islands" data-alternative-spellings="MP" data-relevancy-booster="0.5">Northern Mariana Islands</option>
        <option value="Norway" data-alternative-spellings="NO Norge Noreg" data-relevancy-booster="1.5">Norway</option>
        <option value="Oman" data-alternative-spellings="OM">Oman</option>
        <option value="Pakistan" data-alternative-spellings="PK" data-relevancy-booster="2">Pakistan</option>
        <option value="Palau" data-alternative-spellings="PW" data-relevancy-booster="0.5">Palau</option>
        <option value="Palestinian Territory, Occupied" data-alternative-spellings="PS">Palestinian Territory, Occupied</option>
        <option value="Panama" data-alternative-spellings="PA">Panama</option>
        <option value="Papua New Guinea" data-alternative-spellings="PG">Papua New Guinea</option>
        <option value="Paraguay" data-alternative-spellings="PY">Paraguay</option>
        <option value="Peru" data-alternative-spellings="PE">Peru</option>
        <option value="Philippines" data-alternative-spellings="PH" data-relevancy-booster="1.5">Philippines</option>
        <option value="Pitcairn" data-alternative-spellings="PN" data-relevancy-booster="0.5">Pitcairn</option>
        <option value="Poland" data-alternative-spellings="PL" data-relevancy-booster="1.25">Poland</option>
        <option value="Portugal" data-alternative-spellings="PT" data-relevancy-booster="1.5">Portugal</option>
        <option value="Puerto Rico" data-alternative-spellings="PR">Puerto Rico</option>
        <option value="Qatar" data-alternative-spellings="QA">Qatar</option>
        <option value="Réunion" data-alternative-spellings="RE Reunion">Réunion</option>
        <option value="Romania" data-alternative-spellings="RO">Romania</option>
        <option value="Russian Federation" data-alternative-spellings="RU Russia Rossiya" data-relevancy-booster="2.5">Russian Federation</option>
        <option value="Rwanda" data-alternative-spellings="RW">Rwanda</option>
        <option value="Saint Barthélemy" data-alternative-spellings="BL" data-relevancy-booster="0.5">Saint Barthélemy</option>
        <option value="Saint Helena" data-alternative-spellings="SH" data-relevancy-booster="0.5">Saint Helena</option>
        <option value="Saint Kitts and Nevis" data-alternative-spellings="KN" data-relevancy-booster="0.5">Saint Kitts and Nevis</option>
        <option value="Saint Lucia" data-alternative-spellings="LC" data-relevancy-booster="0.5">Saint Lucia</option>
        <option value="Saint Martin (French Part)" data-alternative-spellings="MF" data-relevancy-booster="0.5">Saint Martin (French Part)</option>
        <option value="Saint Pierre and Miquelon" data-alternative-spellings="PM" data-relevancy-booster="0.5">Saint Pierre and Miquelon</option>
        <option value="Saint Vincent and the Grenadines" data-alternative-spellings="VC" data-relevancy-booster="0.5">Saint Vincent and the Grenadines</option>
        <option value="Samoa" data-alternative-spellings="WS">Samoa</option>
        <option value="San Marino" data-alternative-spellings="SM">San Marino</option>
        <option value="Sao Tome and Principe" data-alternative-spellings="ST">Sao Tome and Principe</option>
        <option value="Saudi Arabia" data-alternative-spellings="SA">Saudi Arabia</option>
        <option value="Senegal" data-alternative-spellings="SN">Senegal</option>
        <option value="Serbia" data-alternative-spellings="RS">Serbia</option>
        <option value="Seychelles" data-alternative-spellings="SC" data-relevancy-booster="0.5">Seychelles</option>
        <option value="Sierra Leone" data-alternative-spellings="SL">Sierra Leone</option>
        <option value="Singapore" data-alternative-spellings="SG">Singapore</option>
        <option value="Sint Maarten (Dutch Part)" data-alternative-spellings="SX">Sint Maarten (Dutch Part)</option>
        <option value="Slovakia" data-alternative-spellings="SK">Slovakia</option>
        <option value="Slovenia" data-alternative-spellings="SI">Slovenia</option>
        <option value="Solomon Islands" data-alternative-spellings="SB">Solomon Islands</option>
        <option value="Somalia" data-alternative-spellings="SO">Somalia</option>
        <option value="South Africa" data-alternative-spellings="ZA">South Africa</option>
        <option value="South Georgia and the South Sandwich Islands" data-alternative-spellings="GS">South Georgia and the South Sandwich Islands</option>
        <option value="South Sudan" data-alternative-spellings="SS">South Sudan</option>
        <option value="Spain" data-alternative-spellings="ES España" data-relevancy-booster="2">Spain</option>
        <option value="Sri Lanka" data-alternative-spellings="LK">Sri Lanka</option>
        <option value="Sudan" data-alternative-spellings="SD">Sudan</option>
        <option value="Suriname" data-alternative-spellings="SR">Suriname</option>
        <option value="Svalbard and Jan Mayen" data-alternative-spellings="SJ" data-relevancy-booster="0.5">Svalbard and Jan Mayen</option>
        <option value="Swaziland" data-alternative-spellings="SZ">Swaziland</option>
        <option value="Sweden" data-alternative-spellings="SE Sverige" data-relevancy-booster="1.5">Sweden</option>
        <option value="Switzerland" data-alternative-spellings="CH Swiss Confederation Schweiz Suisse Svizzera Svizra" data-relevancy-booster="1.5">Switzerland</option>
        <option value="Syrian Arab Republic" data-alternative-spellings="SY Syria">Syrian Arab Republic</option>
        <option value="Taiwan, Province of China" data-alternative-spellings="TW">Taiwan, Province of China</option>
        <option value="Tajikistan" data-alternative-spellings="TJ">Tajikistan</option>
        <option value="Tanzania, United Republic of" data-alternative-spellings="TZ">Tanzania, United Republic of</option>
        <option value="Thailand" data-alternative-spellings="TH">Thailand</option>
        <option value="Timor-Leste" data-alternative-spellings="TL">Timor-Leste</option>
        <option value="Togo" data-alternative-spellings="TG">Togo</option>
        <option value="Tokelau" data-alternative-spellings="TK" data-relevancy-booster="0.5">Tokelau</option>
        <option value="Tonga" data-alternative-spellings="TO">Tonga</option>
        <option value="Trinidad and Tobago" data-alternative-spellings="TT">Trinidad and Tobago</option>
        <option value="Tunisia" data-alternative-spellings="TN">Tunisia</option>
        <option value="Turkey" data-alternative-spellings="TR Türkiye Turkiye">Turkey</option>
        <option value="Turkmenistan" data-alternative-spellings="TM">Turkmenistan</option>
        <option value="Turks and Caicos Islands" data-alternative-spellings="TC" data-relevancy-booster="0.5">Turks and Caicos Islands</option>
        <option value="Tuvalu" data-alternative-spellings="TV" data-relevancy-booster="0.5">Tuvalu</option>
        <option value="Uganda" data-alternative-spellings="UG">Uganda</option>
        <option value="Ukraine" data-alternative-spellings="UA Ukrayina">Ukraine</option>
        <option value="United Arab Emirates" data-alternative-spellings="AE UAE Emirates">United Arab Emirates</option>
        <option value="United Kingdom" data-alternative-spellings="GB Great Britain England UK Wales Scotland Northern Ireland" data-relevancy-booster="2.5">United Kingdom</option>
        <option value="United States" data-relevancy-booster="3.5" data-alternative-spellings="US USA United States of America">United States</option>
        <option value="United States Minor Outlying Islands" data-alternative-spellings="UM">United States Minor Outlying Islands</option>
        <option value="Uruguay" data-alternative-spellings="UY">Uruguay</option>
        <option value="Uzbekistan" data-alternative-spellings="UZ">Uzbekistan</option>
        <option value="Vanuatu" data-alternative-spellings="VU">Vanuatu</option>
        <option value="Venezuela" data-alternative-spellings="VE">Venezuela</option>
        <option value="Vietnam" data-alternative-spellings="VN" data-relevancy-booster="1.5">Vietnam</option>
        <option value="Virgin Islands, British" data-alternative-spellings="VG" data-relevancy-booster="0.5">Virgin Islands, British</option>
        <option value="Virgin Islands, U.S." data-alternative-spellings="VI" data-relevancy-booster="0.5">Virgin Islands, U.S.</option>
        <option value="Wallis and Futuna" data-alternative-spellings="WF" data-relevancy-booster="0.5">Wallis and Futuna</option>
        <option value="Western Sahara" data-alternative-spellings="EH">Western Sahara</option>
        <option value="Yemen" data-alternative-spellings="YE">Yemen</option>
        <option value="Zambia" data-alternative-spellings="ZM">Zambia</option>
        <option value="Zimbabwe" data-alternative-spellings="ZW">Zimbabwe</option>
      </select>
      
    </div>
  </div>
  
  <div class="formatted-text">
    <p>Using principles of progressive enhancement we turn a standard drop-down into an advanced auto-complete field. This means the drop-down remains accessible, while providing a much better experience in modern browsers – handling typos, multiple spelling sequences, synonyms and prioritization.</p>

    <p>You can read the more about the design process and usability aspects in our article on Smashing Magazine: <a href="http://uxdesign.smashingmagazine.com/2011/11/10/redesigning-the-country-selector/">Redesigning the Country Selector</a>.</p>

    <p>To be notified about future improvements, follow the <a href="https://github.com/JamieAppleseed/selectToAutocomplete">project on GitHub</a>.</p>
    
    <p><a href="http://twitter.com/share" class="no-active-pager twitter-share-button" data-count="horizontal" data-text="Redesigning the Country Selector" data-url="http://baymard.com/labs/country-selector" data-via="Baymard" rel="nofollow">Tweet</a></p>
    <script>
      Baymard.plugins.twitter.init();
    </script>
    
    <h2>The jQuery Plugin: selectToAutocomplete</h2>
    <p>You can download the <a href="https://github.com/JamieAppleseed/selectToAutocomplete/zipball/master">plugin here (.zip)</a>, or simply grab it from the <a href="https://github.com/JamieAppleseed/selectToAutocomplete">GitHub repository</a>.</p>
  </div>
  
  <div class="active-tabs">
    <nav class="navigation clearfix">
      <a href="#faq" class="active-tabs-tab no-active-pager">FAQ</a>
      <a href="#license" class="active-tabs-tab no-active-pager">License</a>
      <a href="#documentation" class="active-tabs-tab no-active-pager">Documentation</a>
    </nav>
    <div class="active-tabs-sheets">
      <div class="active-tabs-sheets">
        <h3 class="screen-reader">FAQ</h3>
        <div id="faq" class="active-tabs-sheet">
          <div class="formatted-text">
            <h4>Do I have to use your country list? Which list is it?</h4>
            <p>It's based on the ISO 3166, and no, you don't have to use it. In fact, the idea is that you add this plugin to your existing country list – not replace your country list itself. We simply added the ISO 3166 country list as an example.</p>
            <h4>Is it limited to countries?</h4>
            <p>No. The code simply replace ordinary drop-downs (or 'select' tags), and is therefore not limited to country selectors. Any drop-down on your site can be used. For example, we've used it as an auto-complete to look up DSLR camera models at <a href="http://lenshawk.com">LensHawk.com</a>.</p>
            <h4>Does it work in IE6, IE7, ..?</h4>
            <p>Yes and no. In IE6 and IE7 nothing happens and the normal drop-down is displayed. In other words, it doesn't break your site in IE6 and IE7, but the drop-down won't be turned into an advanced auto-complete field either. IE8+ works along with Firefox, Chrome, Opera and Safari.</p>
            <h4>Does it require back-end integration?</h4>
            <p>No. Everything happens front-end and the auto-complete options are simply taken from the original drop-down so there's no requests to your server (plus searching happens instantly).</p>
            <h4>Is it yet another auto-complete plugin?</h4>
            <p>No. In fact, the auto-complete plugin is completely separate from this plugin. We include the jQuery UI Autocomplete by default but you can use any auto-complete plugin (see next question).</p>
            <h4>Can I use my own auto-complete plugin?</h4>
            <p>Yes. We've deliberately not built the auto-complete part. Instead, there's adapters that allow you to use the plugin with any auto-complete plugin. Currently, there's only a jQuery UI Autocomplete adapter but more may be added if the interest is there.</p>
          </div>
        </div>
        <h3 class="screen-reader">MIT License</h3>
        <div id="license" class="active-tabs-sheet">
          <div class="formatted-text">
            <p>The plugin is released under the MIT License:</p>
            <blockquote class="mit-license">
              <p>Copyright (C) 2011 by Jamie Appleseed, Baymard Institute (baymard.com)</p>
              <p>Permission is hereby granted, free of charge, to any person obtaining a copy
              of this software and associated documentation files (the "Software"), to deal
              in the Software without restriction, including without limitation the rights
              to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
              copies of the Software, and to permit persons to whom the Software is
              furnished to do so, subject to the following conditions:</p>
              <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
              <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
            </blockquote>
            <p>Note: the included jQuery plugins are (obviously) under their noted licenses.</p>
          </div>
        </div>
        <h3 class="screen-reader">Documentation</h3>
        <div id="documentation" class="active-tabs-sheet">
          <div class="formatted-text">
            <h4>Dependencies</h4>
            <ol>
              <li><em>jQuery</em> – This is a jQuery plugin so you'll (obviously) need jQuery included.</li>
              <li><em>Auto-complete</em> – You'll need some kind of an auto-complete plugin. There's an adapter written for the jQuery UI Autocomplete plugin but you can also use your own.</li>
            </ol>

            <h4>Installation</h4>
            <p>Be sure to include the dependencies and then the selectToAutocomplete plugin.</p>
            <p>Now you simply need to call the '.selectToAutocomplete' function on a jQuery selection once the DOM is ready. For example, to turn all <code>select</code> elements with a class of <code>turn-to-ac</code>, you'd simply need to call:</p>
            <p>
              <code>
                jQuery(function(){<br>
                &nbsp;&nbsp;jQuery('select.turn-to-ac').selectToAutocomplete();<br>
                });
              </code>
            </p>
            <p>If you just want to use the default configuration and the jQuery UI Autocomplete plugin then this is it. Otherwise, check below too see how you can customize the auto-complete and write an adaptor for your own auto-complete plugin.</p>
            <h4>Customization</h4>
            <p>There's a whole host of options you can pass to the plugin (as first and only parameter), some of which give you access to the internals of the plugin. Here I'll cover a few of the most common customizations:</p>
            <ul>
              <li><em>relevancy-sorting</em> – should be 'true' if the auto-complete should sort the results based on their relevancy to the search terms (this slows down live filtering, but makes the results much more relevant) | default: true</li>
              <li><em>relevancy-sorting-partial-match-value</em> – the score added for each partial match | default: 1</li>
              <li><em>relevancy-sorting-partial-match-value</em> – the score added if there's one or more strict matches | default: 5</li>
              <li><em>relevancy-sorting-booster-attr</em> – if the defined attribute is present on an 'option' tag, it will be multiplied by the value of this attribute | default: 'data-relevancy-booster'</li>
              <li><em>sort</em> – should be 'true' if the auto-complete should sort (as in: prioritize) the results on initialization (note: this sorting is overwritten by relevancy sorting) | default: false</li>
              <li><em>sort-attr</em> – the attribute that should be sorted by if 'sort' is enabled | default: 'data-priority'</li>
              <li><em>sort-desc</em> – if the sorting direction should be descending (otherwise it'll be ascending) | default: false</li>
              <li><em>alternative-spellings</em> – should be 'true' if the auto-complete should accept alternative spellings | default: true</li>
              <li><em>alternative-spellings-attr</em> – the attribute that contains the alternatives if 'alternative-spellings' is enabled | default: 'data-alternative-spellings'</li>
              <li><em>remove-valueless-options</em> – if options without value (or simply a blank value) should be ignored in the auto-complete results | default: true</li>
              <li><em>copy-attributes-to-text-field</em> – if the attributes of the original 'select' tag should be copied over to the new auto-complete enabled text field | default: true</li>
            </ul>
            <p>For example, if you don't want the attributes of the 'select' tag to be copied over to the new auto-complete text field, then you'd do something like this:</p>
            <p>
              <code>
                $('.turn-to-ac').selectToAutocomplete({<br>
                &nbsp;&nbsp;'copy-attributes-to-text-field': false<br>
                });
              </code>
            </p>

            <h4>Auto-Complete Adapters</h4>
            <p>The selectToAutocomplete plugin allows you to use your own auto-complete plugin. By default we include the jQuery UI Autocomplete and there's a pre-written adapter for it, but if you want to (re)use your own auto-complete plugin then it's actually quite easy to write an adapter.</p>
            <p>Just pass in an 'autocomplete-plugin' function as part of the options hash. This is your adapter function.</p>
            <p>The function should accept one parameter which is a hash containing 4 keys:</p>
            <ol>
              <li><em>$select_field</em> – the original (and now hidden) select field in a jQuery selection.</li>
              <li><em>$text_field</em> – the new text field in a jQuery selection.</li>
              <li>
                <em>options</em> – an array of the hashes representing each of the select tag's original options. The individual hash can have up to 6 keys:
                <ol>
                  <li><em>real-value</em> – the option's <code>value</code> attribute.</li>
                  <li><em>label</em> – the option's actual text written between the opening and closing <code>option</code> tags.</li>
                  <li><em>matches</em> – the string you should search in your auto-complete plugin. This contains the label, and if alternative spellings is enabled it contains all those.</li>
                  <li><em>relevancy-score</em> – only included if relevancy sorting is enabled. It contains the current relevancy score of the option.</li>
                  <li><em>relevancy-score-booster</em> – only included if relevancy sorting is enabled. It contains the relevancy booster value of the option (used to promote certain options over others). Default is 1.</li>
                  <li><em>weight</em> – only included if sorting is enabled. It contains the option's value of the defined sort-attr. Please note: the options array is already sorted.</li>
                </ol>
              </li>
              <li><em>settings</em> – a hash of all the options for the plugin (defaults merged with customizations).</li>
            </ol>
          </div>
        </div>
      </div>
    </div>
  </div>
  
</div>

<script>
  (function( $ ){
    $(function(){
      $( '#country-selector' ).selectToAutocomplete();
      if ( !!( 'placeholder' in document.createElement('input') ) ) {
        $( '.demo .label' ).remove();
      }
      
      $( '.active-tabs' ).activeSlider({
        'slides-selector': '.active-tabs-sheet',
        'tabs-selector': '.active-tabs-tab'
      });
    });
  })( jQuery );
</script>

  


    
    </div>
  
    <div class="footer" data-active-pager-module-key="footer" data-active-pager-module-value="v12-public">
      <div class="inner">

  <nav>
    <div class="five-col main">
      <div class="col col-baymard">
        <em>Baymard Institute:</em>
        <a href="/" class="home" data-system-key="home"><span class="prefix">&rsaquo; </span>Home</a>
        <a href="/about" class="" data-system-key="about"><span class="prefix">&rsaquo; </span>About</a>
        <a href="/privacy-policy" class="" data-system-key="privacy"><span class="prefix">&rsaquo; </span>Privacy</a>
        <a href="/terms-and-conditions" class="" data-system-key="terms"><span class="prefix">&rsaquo; </span>Terms</a>
      </div>
      <div class="col col-articles">
        <em>Articles:</em>
        <a href="/blog" class="" data-system-key="articles"><span class="prefix">&rsaquo; </span>Latest</a>
        <a href="/blog/archive" class="" data-system-key="articles_archive"><span class="prefix">&rsaquo; </span>Archive</a>
        <a href="/blog/subscribe" class="" data-system-key="articles_subscribe"><span class="prefix">&rsaquo; </span>Subscribe</a>
      </div>
      <div class="col col-resources">
        <em>Labs &amp; Resources:</em>
        <a href="/checkout-usability/benchmark" class="" data-system-key="benchmark_ecommerce_checkout"><span class="prefix">&rsaquo; </span>Checkout Benchmark</a>
        <a href="/homepage-and-category-usability/benchmark" class="" data-system-key="benchmark_ecommerce_homepage_and_category"><span class="prefix">&rsaquo; </span>Homepage &amp; Category Benchmark</a>
        <a href="/lists/cart-abandonment-rate" class="" data-system-key="cart_abandonment_rates"><span class="prefix">&rsaquo; </span>Abandonment Statistics</a>
        <a href="/labs/country-selector" class="selected-current" data-system-key="labs_country_selector"><span class="prefix">&rsaquo; </span>Country Selector</a>
        <a href="/labs/touch-keyboard-types" class="" data-system-key="labs_touch_keyboard_types"><span class="prefix">&rsaquo; </span>Touch Keyboard Types</a>
      </div>
      <div class="col col-products">
        <em>Research Products:</em>
        <a href="/checkout-usability" class="" data-system-key="report_ecommerce_checkout"><span class="prefix">&rsaquo; </span>Checkout Report</a>
        <a href="/checkout-usability/expert-audit" class="" data-system-key="expert_audit_ecommerce_checkout"><span class="prefix">&rsaquo; </span>Checkout Audit</a>
        <a href="/mcommerce-usability" class="" data-system-key="report_mcommerce"><span class="prefix">&rsaquo; </span>M-Commerce Report</a>
        <a href="/mcommerce-usability/expert-audit" class="" data-system-key="expert_audit_mcommerce"><span class="prefix">&rsaquo; </span>M-Commerce Audit</a>
        <a href="/homepage-and-category-usability" class="" data-system-key="report_ecommerce_homepage_and_category"><span class="prefix">&rsaquo; </span>Homepage &amp; Category Report</a>
        <a href="/homepage-and-category-usability/expert-audit" class="" data-system-key="expert_audit_ecommerce_homepage_and_category"><span class="prefix">&rsaquo; </span>Homepage &amp; Category Audit</a>
      </div>
      <div class="col disclaimer">
        <span>&copy; 2014 Baymard Institute</span>
        <span>US: +1 (415) 315-9567</span>
        <span>EU: +45 3696 9567</span>
        <span><a href="mailto:info@baymard.com">info@baymard.com</a></span>
      </div>
    </div>
  </nav>
  
</div>

    </div>
  
    <div class="active-pager-loading-overlay"></div>
    <div class="active-tooltip-template">
      <div class="inner">
        <div class="active-tooltip-content-recipient"></div>
      </div>
    </div>
  
    <div class="active-overlay">
      <div class="inner">
        <a href="#close-overlay" class="close" title="Close overlay"><span class="screen-reader">Close overlay</span></a>
        <div class="content"></div>
      </div>
    </div>
  
    <!-- Google Code for Main List -->
<!-- Remarketing tags may not be associated with personally identifiable information or placed on pages related to sensitive categories. For instructions on adding this tag and more information on the above requirements, read the setup guide: google.com/ads/remarketingsetup -->
  <script type="text/javascript">
  /* <![CDATA[ */
  var google_conversion_id = 990031868;
  var google_conversion_label = "ZyIfCNT3-VEQ_N-K2AM";
  var google_custom_params = window.google_tag_params;
  var google_remarketing_only = true;
  /* ]]> */
  </script>
  <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
  </script>
  <noscript>
  <div style="display:inline;">
  <img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/990031868/?value=0&amp;label=ZyIfCNT3-VEQ_N-K2AM&amp;guid=ON&amp;script=0"/>
  </div>
  </noscript>

    
  </body>
  </html>

